package obstacle;

import java.util.ArrayList;

import reseau.Coordonnees2D;

public class ObstaclesList {
	
	protected ArrayList<IObstacle> obstacles;
	
	public ObstaclesList()
	{
		obstacles = new ArrayList<IObstacle>();
	}
	
	/**
	 * 
	 * @param depart le point de départ du chemin
	 * @param arrivee le point d'arrivée du chemin
	 * @return le premier obstacle qui croise le chemin, null s'il n'y en a aucun
	 */
	public IObstacle obstaclesRencontre(Coordonnees2D depart, Coordonnees2D arrivee)
	{
		double minDistance = Double.POSITIVE_INFINITY;
		IObstacle minObstacle = null;
		
		for(IObstacle obs : obstacles)
		{
			double dist = obs.getIntersection(depart, arrivee).distanceA(depart);
			if( dist < minDistance)
			{
				minDistance = dist;
				minObstacle = obs;
			}
		}
		
		return minObstacle;
	}
	
	public void addObstacle(IObstacle obs)
	{
		obstacles.add(obs);
	}
}
